// 模板字符串
const str = `我是模板字符串`;
console.log(str);
// 插值表达式
// 插值表达式内部可以使用任何标准的js语句
// const name = "jack";
// const str2 = `hello,${name} --- ${1 + 2} --- ${Math.random()}`;
// console.log(str2);

// 标签实际上是一个特殊的函数

console.log`hello world`; // 会输出[hello world]

const name = "jack";
const gender = true;
// 要使用标签函数就要先定义标签函数
// 标签函数接收一个数组参数,这个数组参数中的内容是模板字符串中按照插值表达式分割之后的结果
// 除了第一个参数这个分割数组以外,后面的参数可以依次获取到插值表达式内的值
// 标签函数的返回值return什么就是什么
function myTagFunc(strings, name, gender) {
    // 因为返回什么就是什么了，所以要将原值返回的话需要内部处理
    return strings[0] + name + strings[1] + gender + strings[2];
}
const result = myTagFunc`hey, ${name} is a ${gender}.`;
// 返回值hey, jack is a true.
console.log(result);
